#ifndef MAIN_H
#define MAIN_H

#include <windows.h>

#include <stdio.h>
#include <string.h>

#include <snmp.h>
#include <mgmtapi.h>
//#include <strsafe.h>

#include <malloc.h>
#include <tchar.h>

#include <windows.h>
#include <Windowsx.h>

#define _WIN32_IE 0x0700
#include <commctrl.h>
#include <time.h>
#include <string.h>

// User define includes
#include "../inc/gui.h"
#include "../inc/resource.h"
#include "../inc/network.h"

/*
 * Structures and types
 */

/* MIB2 Object ID
1.3.6.1.2.1.1 - SNMP MIB-2 System
1.3.6.1.2.1.2 - SNMP MIB-2 Interfaces
1.3.6.1.2.1.3 - at
1.3.6.1.2.1.4 - ip
1.3.6.1.2.1.5 - icmp
1.3.6.1.2.1.6 - tcp
1.3.6.1.2.1.7 - udp
1.3.6.1.2.1.8 - egp
1.3.6.1.2.1.9 - cmot
1.3.6.1.2.1.10 - transmission
1.3.6.1.2.1.11 - snmp
1.3.6.1.2.1.14 - OSPF Version 2 MIB
1.3.6.1.2.1.15 - BGPv4
1.3.6.1.2.1.16 - Managed Objects for Bridges
1.3.6.1.2.1.17 - Bridge Mib
1.3.6.1.2.1.22 - rptrHealth
1.3.6.1.2.1.25 - HOST-RESOURCES-MIB, from RFC 1514
1.3.6.1.2.1.26 - Ethernet MAU mib
1.3.6.1.2.1.27 - Application MIB module
1.3.6.1.2.1.28 - MTA MIB module
1.3.6.1.2.1.29 - X.500 Directory MIB module
1.3.6.1.2.1.31 - ifMib
1.3.6.1.2.1.33 - upsMIB
1.3.6.1.2.1.34 - snaNode
1.3.6.1.2.1.41 - sdlcStatus
1.3.6.1.2.1.43 - Printer-MIB
1.3.6.1.2.1.47 - entity-mib
1.3.6.1.2.1.69 - docsDev
*/

#define OID_REF_LENGTH 16
typedef struct oid_reference {
    unsigned int no;                // Corresponds to subtree number 1.3.6.1.2.1.xx
    char name[OID_REF_LENGTH];      // Name displayed
} oid_reference;


#define VALUE_MAXSIZE 64
typedef struct oid_item {

	//unsigned int no_items;			// Number of items in the list
	char* name;					// Names, formatted in strings
	char* type;					// Types, in string format
	char value[VALUE_MAXSIZE];	// Values, in string format

}oid_item;

void saveLog(HWND hwnd);

#endif
